﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

// Single Responsibility fout
namespace SRF
{
    /// <summary>
    /// Taak van de costumer is het uitvoeren van database acties en niet het loggen van errors.
    /// </summary>
    class Customer
    {
        public void Add()
        {
            try
            {
                // Database code goes here
            }
            catch (Exception ex)
            {
                System.IO.File.WriteAllText(@"c:\Error.txt", ex.ToString());
            }
        }
    }
}

// Single Responsibility goed
namespace SRG 
{
    /// <summary>
    /// De taak van de Fileloggen is het loggen van errors
    /// </summary>
    class FileLogger
    {
        public void Handle(string error)
        {
            System.IO.File.WriteAllText(@"c:\Error.txt", error);
        }
    }

    /// <summary>
    /// Er wordt een filelogger aangemaakt en deze wordt gebruikt in plaats van het direct hier te loggen.
    /// </summary>
    class Customer
    {
        private FileLogger obj = new FileLogger();
        public virtual void Add()
        {
            try
            {
                // Database code goes here
            }
            catch (Exception ex)
            {
                obj.Handle(ex.ToString());
            }
        }
    }
}
